'''
给定一个非负索引 k，其中 k ≤ 33，返回杨辉三角的第 k 行。
错位相加，第0行是1所以和之前的杨辉三角的边界条件不同
'''
class Solution:
    def getRow(self, rowIndex: int) -> List[int]:
        res = [[1]]
        while len(res) < rowIndex + 1:
            row = [i + j for i, j in zip([0] + res[-1], res[-1] + [0])]
            res.append(row)
        return res[-1]

'''
只是边界条件不一样
返回[-1]
空间不太美好
'''
class Solution:
    def getRow(self, rowIndex: int) -> List[int]:
        res = []
        for i in range(rowIndex+1):
            row = [None for _ in range(i+1)]
            row[0],row[-1] = 1,1
            for j in range(1,i):
                row[j] = res[i-1][j-1]+ res[i-1][j]
            res.append(row)
        return res[-1]

'''
可以直接利用之前的结果然后覆盖空间
'''
class Solution:
    def getRow(self, rowIndex):
        row = [1]
        for i in range(1, rowIndex + 1):
            row.insert(0, 0)
            # 【0，1】
            # 【0，1，1】
            # 【0,1,2,1】
            for j in range(i):
                # row j就是前面添加0的行，row j+1就是后面添加0的行
                row[j] = row[j] + row[j+1]
                # row【0】 = row【0】 + row【1】  【1，1】
                # 【1,2,1】
                # 【1,3,3,1】
        return row

class Solution:
    def getRow(self, rowIndex: int) -> List[int]:
        row = [1]
        for i in range(1,rowIndex+1):
            row.insert(0,0)
            for j in range(i):
                row[j] =row[j] + row[j+1]
        return row